package day1105.first;

import day1105.common.MyUtil;
import day1105.common.Student;

import java.util.List;

import static day1105.common.MyUtil.printLine;

/**
 * @author Mr.ma
 * @since 2022/11/5 16:42
 * match: 匹配，流中匹配操作有两个，anyMatch()和allMatch()
 *      anyMatch(): 任意一个元素匹配就返回true
 *      allMatch(): 所有元素都匹配才返回true
 *      noneMatch(): 没有元素匹配才放回true
 * 上述两个方法都为终止操作，需要一个断言型函数式接口作为参数，返回值为布尔类型
 **/
public class MatchTest {
    public static void main(String[] args) {
        List<Student> studentList = MyUtil.createStudentList();
        studentList.stream().forEach(System.out::println);
        printLine("判断是否有学生现在18岁");
        boolean b = studentList.stream().anyMatch(x -> x.getAge() == 18);
        if (b){
            System.out.println("有学生18岁");
        } else {
            System.out.println("没有学生18岁");
        }
        printLine("判断是否存在分数不及格的学生");
        boolean b1 = studentList.stream().allMatch(x -> x.getScore() >= 60);
        if (b1){
            System.out.println("不存在不及格学生");
        } else {
            System.out.println("存在小垃圾不及格");
        }
        boolean b2 = studentList.stream().noneMatch(x -> x.getScore() < 60);
        if (b1){
            System.out.println("不存在不及格学生");
        } else {
            System.out.println("存在小垃圾不及格");
        }
    }
}
